home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / debconf / confmodule.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2008-10-10  |  3KB  |  101 lines

  1. #!/bin/sh
  2. # This is a shell library to interface to the Debian configration management
  3. # system.
  4. #
  5. # This library is obsolete. Do not use.
  6.  
  7. ###############################################################################
  8. # Initialization.
  9.  
  10. # Check to see if a FrontEnd is running.
  11. if [ ! "$DEBIAN_HAS_FRONTEND" ]; then
  12.     PERL_DL_NONLAZY=1
  13.     export PERL_DL_NONLAZY
  14.     # Ok, this is pretty crazy. Since there is no FrontEnd, this
  15.     # program execs a FrontEnd. It will then run a new copy of $0 that
  16.     # can talk to it.
  17.     exec /usr/share/debconf/frontend $0 $*
  18. fi
  19.  
  20. # Only do this once.
  21. if [ -z "$DEBCONF_REDIR" ]; then
  22.     # Redirect standard output to standard error. This prevents common
  23.     # mistakes by making all the output of the postinst or whatever
  24.     # script is using this library not be parsed as confmodule commands.
  25.     #
  26.     # To actually send something to standard output, send it to fd 3.
  27.     exec 3>&1 1>&2
  28.     DEBCONF_REDIR=1
  29.     export DEBCONF_REDIR
  30. fi
  31.  
  32. # For internal use, send text to the frontend.
  33. _command () {
  34.     echo $* >&3
  35. }
  36.  
  37. echo "WARNING: Using deprecated debconf compatibility library."
  38.  
  39. ###############################################################################
  40. # Commands.
  41.  
  42. # Generate subroutines for all commands that don't have special handlers.
  43. # Each command must be listed twice, once in lower case, once in upper.
  44. # Doing that saves us a lot of calls to tr at load time. I just wish shell had
  45. # an upper-case function.
  46. old_opts="$@"
  47. for i in "capb CAPB" "set SET" "reset RESET" "title TITLE" \
  48.          "input INPUT" "beginblock BEGINBLOCK" "endblock ENDBLOCK" "go GO" \
  49.      "get GET" "register REGISTER" "unregister UNREGISTER" "subst SUBST" \
  50.      "fset FSET" "fget FGET" "visible VISIBLE" "purge PURGE" \
  51.      "metaget METAGET" "exist EXIST" \
  52.      "x_loadtemplatefile X_LOADTEMPLATEFILE"; do
  53.     # Break string up into words.
  54.     set -- $i
  55.     eval "db_$1 () {
  56.         _command \"$2 \$@\"
  57.         read _RET
  58.         old_opts="\$@"
  59.         set -- \$_RET
  60.         shift
  61.         RET="\$*"
  62.         set -- \$old_opts
  63.         unset old_opts
  64.           }"
  65. done
  66. # $@ was clobbered above, unclobber.
  67. set -- $old_opts
  68. unset old_opts
  69.  
  70. # By default, 1.0 protocol version is sent to the frontend. You can
  71. # pass in a different version to override this.
  72. db_version () {
  73.     if [ "$1" ]; then
  74.         _command "VERSION $1"
  75.     else
  76.         _command "VERSION 1.0"
  77.     fi
  78.     # Not quite correct, but not worth fixing in obsolete code.
  79.     read -r RET
  80. }
  81.  
  82. # Here for backwards compatibility.
  83. db_go () {
  84.     _command "GO"
  85.     read -r RET
  86.     if [ "$RET" = 30 ]; then
  87.         RET='back'
  88.     fi
  89. }
  90.  
  91. # Just an alias for input. It tends to make more sense to use this to display
  92. # text, since displaying text isn't really asking for input.
  93. db_text () {
  94.     db_input $@
  95. }
  96.  
  97. # Cannot read a return code, since there is none and we would block.            
  98. db_stop () {                                                                    
  99.     echo STOP >&3                                                           
  100. }
  101.